草庐IT

Android TalkBack 和 fragment 堆栈

全部标签

java - 使用 BottomBar 可以防止 fragment 打开?

我正在使用支持库添加一个类似于MaterialDesign的底栏。底部栏效果很好,但似乎如果我显示栏,如果我尝试从我的自定义适配器打开任何fragment,fragment不会打开......或者它可能在我的主布局后面打开?我不知道如何解决这个问题。下面是我的代码。我已经在SO和网络上阅读了更多帖子,我认为这与正确加载但位于底部栏下方或旁边的fragment有关......这就是它不可见的原因?为什么会这样?是因为底栏有LinearLayout吗?我将它定义为一个菜单,所以我不确定我是否可以将它控制为一个LinearLayout....设置底部栏,此方法从我的Activity的onCr

android - fragment 之间的共享 View 模型,没有 Activity 范围?

这个问题在这里已经有了答案:Scopingaviewmodeltomultiplefragments(notactivity)usingthenavigationcomponent(4个答案)关闭3年前。使用新的导航架构组件,我有一个Activity作为导航主机,我的屏幕有多个fragment。现在我有一个EditProfileFragment,用户可以在其中单击一个按钮,然后打开另一个fragment,其中包含可供选择的国家/地区列表。假设我想将该国家/地区选择的结果分享回EditProfileFragment。一般的想法是我将有一个EditProfileViewModel用于所有“

android - Android 应用程序从 'best practice' 更改为 'Activities' 的 'Fragments' 是什么?

我正在为Android平台编写应用程序。该应用程序几乎已经为2.x版本编写,但我也想为Honeycomb版本编写它。如您所知,Honeycomb对于选项卡目标有“fragment”而不是“Activity”。我的应用程序中有大约30个Activity,必须将其更改为fragment。这对我来说可能很难,所以我想知道关于这样做的“最佳实践”。谢谢。 最佳答案 不是真正的100%答案,只是我目前的个人经验(如果我有任何错误,请纠正我-我仍然是Android的初学者):我在atm遇到了同样的情况,我想我可以重新使用我的Activity并更

android - 启动 Activity 4 时从返回堆栈中删除 Activity 2 和 3

我有4个AndroidActivity。我们称它们为A、B、C、D。正常流程是A=>B=>C=>D。但是,当我输入D时,我想从后台堆栈中删除B和C。可以解决吗?请注意,如果用户在C并按下返回键,B仍应显示!编辑:使用CLEAR_TOP再次启动ActivityA确实在我不想要的ActivityA上再次调用了onCreate。还有其他解决方案吗? 最佳答案 我知道这是一个老问题,但我最近遇到了同样的问题,而且在任何地方都找不到解决方案。我可以开始工作的唯一解决方案是一些hack:使用startActivityForResult从B启动C

android - 从backstack中获取的fragment,再次调用onCreateView()

请帮我解决我的问题。我有带有框架布局的MainActivity。我想将一些fragment替换到框架布局中。现在我遇到了一个问题,它是:1)我创建fragmentA并将其放入框架布局。fragmentA调用了onCreateView...等等2)然后我创建了fragmentB并将其放入布局...fragmentA被放在backstack上,它调用了onPause()(不是调用onDeattach(),onDestroy...)3)我按下了后退按钮。FragmentA是从backstack中获取的,但它再次调用了onCreateView()。此操作使我的应用程序有一些其他问题。所以我的问

Android Fragment - 使用 Activity 的 loadermanager 而不是 Fragment 的。可以吗?

给定一个使用加载程序从数据库加载(大量)数据的fragment。问题:我有一个寻呼机适配器,它会在用户离开持有它的选项卡时销毁该fragment,并在用户返回该选项卡时重新创建它。由于这种重新创建,每次都会创建一个新的加载程序,并且每次都会加载数据。问题:为避免每次创建fragment时都重新创建加载程序,是否可以在onActivityCreated方法中使用fragment?我已经尝试过,测试过,似乎工作正常。但我不认为这是正确的。 最佳答案 实际上,检查源代码,您最终会做同样的事情。Fragment.getLoaderManag

android - 如何通过焦点调整屏幕中两个 fragment 的大小?

我有三个fragment,前两个占据屏幕的80%,最后一个占据其余部分(这个尺寸永远不会改变)。我想在fragment中的用户(焦点)输入后调整fragment大小,使其填充屏幕的70%(将10%留给另一个)。像这样:可以动态改变fragment的权重吗?或者有更好的方法来实现这一点?这是我现在在XML中的代码: 最佳答案 它应该是这样的:LinearLayout.LayoutParamsparam=newLinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams

具有 fragment 的 Activity 与具有 fragment 的另一个 Activity 之间的 Android 共享元素转换

我有一个包含FragmentA的ActivityA,我想将共享元素转换为包含FragmentB的ActivityB。在Activity中,共享元素将是工具栏。在fragment中,它将是一个TextView。有没有办法做到这一点?如果不是,我如何在Activity中的两个fragment之间进行共享元素转换?在此先感谢您的帮助。我被困了一段时间。好的,我将提供一些代码来澄清。这里有MainActivity:此Activity包含名为MainFragment的fragment:现在我要做的是,当我单击MainFragment中的按钮时,我想对这个名为DetailActivity的Acti

android - 结束 fragment

所以我已经了解了如何打开fragment。这是我的困境。我的view旁边有一个元素列表(元素周期表元素)。当您选择一个元素时,它会显示它的信息。我的问题是我需要能够从(我们称之为详细信息fragment)中删除view并将其从堆栈中删除,这样我就没有很大的内存备份。调用新的fragment替换它时,如何将它从堆栈中移除? 最佳答案 您可以使用FragmentTransaction的#remove()方法删除fragment。此方法还会从它附加到的容器中删除View。但是,从fragment文档中:Stopped:Thefragmen

android - 替换事务中的 fragment 时出现 fragment 后台错误?

这是导致问题的场景:我启动一个带有ViewGroup的Acitivity,该ViewGroup将保存呈现的fragment。我通过在保存到后台堆栈的事务中调用.replace()将fragmentA加载到此ViewGroup。我将fragmentB加载到View组中,替换fragmentA。我再次保存事务。我旋转设备两次。在第二次旋转时,fragmentA(此时不可见)将抛出NullPointer异常。此异常由fragmentA抛出,因为我在其onSaveInstanceState()方法中保存了一些View值(例如EditTexts)。看起来,在第二次轮换时,系统没有实例化这些Vie